
package logicBusiness;


import DAO.DecretoDao;
import models.Decreto;
import java.util.List;
import javax.persistence.*;
import javax.swing.JTable;
import javax.swing.table.TableColumn;


public class DecretoBL {

     private int ok = 0;
    DecretoDao decretodao;

    public int crearDecreto(Integer iddecreto, Integer documento_iddocumento,
            String leyes, String articulo, String capitulo, String nombreDec,
            String considerado, String considerado1, String considerado2, String capitulo1,
            String articulo1, String descrip, String descrip1)
    {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        em.getTransaction().begin();
        Decreto a = dao.crearDecreto(iddecreto,documento_iddocumento,leyes,
                articulo,capitulo, nombreDec, considerado, considerado1, considerado2,
                capitulo1, articulo1, descrip, descrip1);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        } else if (a.getNombreDec().equals(nombreDec)) {
            ok = 1;
        }
        return ok;


    }




         public List obtenerListDecreto() {
        EntityManagerFactory emf =
        Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        decretodao = new DecretoDao(em);
        em.getTransaction().begin();

        List lista=null;               //coleccion de objetos con atributos de preinscrito
        lista=(List) decretodao.encontrarDecreto();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return lista;
    }

          public void actualizarDecreto(JTable tablaentrada){

        EntityManagerFactory emf =
        Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        decretodao = new DecretoDao(em);

        for(int iterador=0;iterador<tablaentrada.getRowCount();iterador++)
        {

            if(tablaentrada.getValueAt(iterador, 5).equals("si")||
               tablaentrada.getValueAt(iterador, 5).equals("s")||
               tablaentrada.getValueAt(iterador, 5).equals("S")||
               tablaentrada.getValueAt(iterador, 5).equals("SI"))
            {
            System.out.println((Integer) tablaentrada.getValueAt(iterador, 0));
            decretodao.ActualizarDecreto((Integer) tablaentrada.getValueAt(iterador, 0));
               //columna 0, columna con numero de identidad

            }

        }
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
    }


      public Integer resultado() {
        int i = 0;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        return i=dao.devolverId();
    }

    public void borrarDecreto(Integer iddecreto) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        em.getTransaction().begin();
        dao.borrarDecreto(iddecreto);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        //return ok;

    }

    public int encontrarDecreto(Integer iddecreto) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        Decreto a = dao.encontrarDecreto(iddecreto);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
//        else if (a.getIddecreto().equals(iddecreto)) {
//            ok = a.getIddecreto();
//        }
        return ok;

    }
    public Decreto consultarDecreto(Integer iddecreto) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        Decreto a = dao.encontrarDecreto(iddecreto);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
            ok = 0;
        } else if (a.getId().equals(idAula)) {
            ok = 1;
        }*/
        return a;
    }
    public int actualizarDecreto(Integer iddecreto, Integer documento_iddocumento,
            String leyes, String articulo, String capitulo, String nombreDec,
            String considerado, String considerado1, String considerado2, String capitulo1,
            String articulo1, String descrip, String descrip1) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        em.getTransaction().begin();
        Decreto a = dao.actualizarDecreto(iddecreto, documento_iddocumento,
                leyes,articulo, capitulo, nombreDec, considerado, considerado1,
                considerado2, capitulo1, articulo1, descrip, descrip1);
        em.getTransaction().commit();

        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
//        else if (a.getIddecreto().equals(iddecreto)) {
//            ok = 1;
//        }
        return ok;

    }

    public List<Decreto> findAll() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        DecretoDao dao = new DecretoDao(em);
        List<Decreto> a = dao.findAll();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
            ok = 0;
        } else if (a.getId().equals(idAula)) {
            ok = 1;
        }*/
        return a;
    }

}
